﻿using System;
using MCP.BL;
using MCP.BL.Messages;
using MCP.Data.CF_Entities;

namespace MCP.Model.Repositories.Interfaces
{
    /// <summary>
    /// Includes all operation with user, his settings and tarrif.
    /// </summary>
    public interface IAccountRepository
    {
        OperationResult<User> GetUser(string username);
        OperationResult<User> GetUser(int userID);

        OperationResult<Settings> GetUserSettings();

        CurrentBalanceMessage GetCurrentBalanceMessage();

        OperationResult UpdateUserSettings(Settings settings);
        OperationResult<Settings> GetCurrentUserSettings();

        void InitializeBaseUsers();
    }
}